package com.yjzx.util.redisson.service;

import com.fasterxml.jackson.core.type.TypeReference;

import java.util.concurrent.TimeUnit;

public interface CacheOpsService {
    /**
     * 从redis内存中查询到指定的数据，返回指定class类型的数据
     * @param key
     * @param clazz
     * @param <T>
     * @return
     */
    <T> T getCacheData(String key, Class<T> clazz);

    /**
     * 从redis内存中查询指定的数据，返回指定的泛型类型
     * @param key
     * @param tf
     * @param <T>
     * @return
     */
    <T> T getCacheData(String key, TypeReference<T> tf);

    /**
     * 添加数据到redis内存中
     * @param key
     * @param data
     */
    void saveData(String key, Object data, Long ttl, TimeUnit timeUnit);
}
